Add dist step for enzyme, including aarch64-apple-darwin#151063
Add dist step for enzyme, including aarch64-apple-darwin#151063sgasho wants to merge 4 commits intorust-lang:mainfrom
Conversation
|
@bors delegate try |
|
Unknown command "delegate". Run |
|
Hmm, not sure about the exact syntax, but delegate itself should have been recognized, maybe not ported to the new bots yet? I'll let Jakub handle it. @bors try jobs=dist-aarch64-apple |
This comment has been minimized.
This comment has been minimized.
Add dist step for enzyme, including aarch64-apple-darwin try-job: dist-aarch64-apple
|
@bors delegate=try |
|
✌️ @sgasho, you can now perform try builds on this pull request! You can now post |
|
☔ The latest upstream changes (presumably #150541) made this pull request unmergeable. Please resolve the merge conflicts. |
|
@bors try jobs=dist-aarch64-apple |
This comment has been minimized.
This comment has been minimized.
30f87bc to
31d3fde
Compare
|
@bors try jobs=dist-aarch64-apple |
This comment has been minimized.
This comment has been minimized.
Add dist step for enzyme, including aarch64-apple-darwin try-job: dist-aarch64-apple
This comment has been minimized.
This comment has been minimized.
bc7b483 to
98144d4
Compare
|
@bors try jobs=dist-aarch64-apple |
This comment has been minimized.
This comment has been minimized.
Add dist step for enzyme, including aarch64-apple-darwin try-job: dist-aarch64-apple
|
💔 Test for 2c9be7e failed: CI. Failed job:
|
68bbd9d to
24da679
Compare
This comment has been minimized.
This comment has been minimized.
|
@bors retry |
|
❗ You can only retry pull requests that are approved and have a previously failed auto build. |
|
I realized that we cannot use |
This comment has been minimized.
This comment has been minimized.
24da679 to
216ee22
Compare
|
I have updated this branch because #150992 has been merged into main. I'll expand it so that it can be used for dylib. |
216ee22 to
3d7687b
Compare
3d7687b to
e8a670f
Compare
|
@bors try jobs=dist-aarch64-apple |
This comment has been minimized.
This comment has been minimized.
Add dist step for enzyme, including aarch64-apple-darwin try-job: dist-aarch64-apple
|
@bors try jobs=dist-aarch64-apple |
This comment has been minimized.
This comment has been minimized.
Add dist step for enzyme, including aarch64-apple-darwin try-job: dist-aarch64-apple
|
I verified that the simple autodiff code below works with llvm.link-shared=true. #![feature(autodiff)]
use std::autodiff::*;
// f(x) = x * x, f'(x) = 2.0 * x
// bar therefore returns (x * x, 2.0 * x)
#[autodiff_reverse(bar, Active, Active)]
fn foo(x: f32) -> f32 {
x * x
}
fn main() {
assert_eq!(bar(3.0, 1.0), (9.0, 6.0));
assert_eq!(bar(4.0, 1.0), (16.0, 8.0));
} |
|
Current stable rustc exports 436 llvm symbols. nm -gU /Users/sgasho/.rustup/toolchains/stable-aarch64-apple-darwin/lib/librustc_driver-015fbde41a4573ae.dylib | grep -i "LLVM" | wc -l
436If we implement #151243, its result would be 40k nm -gU ~/Downloads/rust-nightly-aarch64-apple-darwin\ 2/rustc/lib/librustc_driver-87e8ef082ced32c9.dylib | grep -i "LLVM" | wc -l
43404All symbols in rustc_driver would be 60k nm -gU ~/Downloads/rust-nightly-aarch64-apple-darwin\ 2/rustc/lib/librustc_driver-87e8ef082ced32c9.dylib | wc -l
64141Undefined symbols for libEnzyme nm -u ~/Desktop/enz-ci/lib/libEnzyme-22.dylib | grep -i "LLVM" | wc -l
860I have not found the good solution to export only what libEnzyme needs in a reasonable way. So, for the first step, I implemented export-all-symbols and I'll see if it works fine. I think I could expand export-symbols but I did not have enough time to implement it today... @bors try jobs=dist-aarch64-apple |
This comment has been minimized.
This comment has been minimized.
Add dist step for enzyme, including aarch64-apple-darwin try-job: dist-aarch64-apple
This reverts commit aaef5c6.
|
"-Zexport-all-symbols" worked. Revert export-all-symbols impl for now. |
|
@Kobzol @bjorn3 Do you have any thoughts on which path to follow here? Since this is already our slowest runner, I was somewhat worried about doing any larger changes like using dynamic linking. However, the other two approaches also seem to have their downsides, B) exposes a lot more symbols (not sure how far that could affect startup time) and C) has more complexity and would need to be implemented. We originally started on this journey in an attempt of not statically linking Enzyme into rustc, so we could make shipping it optional. I think either alternative above is an improvement over that solution, so I'd let you two choosee. Any preference? |
I cherry-picked commits from #150071 then added a commit below to enable the production of an enzyme artifact for aarch64-apple-darwin.
set llvm.enzyme=true on dist-aarch64-apple
background: #145899 (comment)
I've been looking into the dlopen problem and I need an artifact for aarch64 for me, not only for x86_64.
@Kobzol @ZuseZ4
Could you...
I'll try to run "try-job dist-aarch64-apple" after delegation.